home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Monster Media 1996 #14
/
Monster Media No. 14 (April 1996) (Monster Media, Inc.).ISO
/
prog_bas
/
basicos2.zip
/
MORTGAGE.BAS
< prev
next >
Wrap
BASIC Source File
|
1996-02-11
|
8KB
|
201 lines
1010 CLS:LOCATE 5,19:PRINT "IBM"
1020 LOCATE 7,12,0:PRINT "Personal Computer"
1030 LOCATE 10,9,0:PRINT CHR$(213)+STRING$(21,205)+CHR$(184)
1040 LOCATE 11,9,0:PRINT CHR$(179)+" MORTGAGE "+CHR$(179)
1050 LOCATE 12,9,0:PRINT CHR$(179)+STRING$(21,32)+CHR$(179)
1060 LOCATE 13,9,0:PRINT CHR$(179)+" Version 1.21 "+CHR$(179)
1070 LOCATE 14,9,0:PRINT CHR$(212)+STRING$(21,205)+CHR$(190)
1071 LOCATE 16,5,0:PRINT "Modified to run under NitrousBasic"
1072 LOCATE 17,5,0:PRINT " By Adrian J. Michaud"
1080 LOCATE 19,4,0:PRINT "(C) Copyright IBM Corp 1981, 1982"
1090 LOCATE 23,7,0:PRINT "Press space bar to continue"
1100 IF INKEY$ <> "" THEN GOTO 1100
1110 CMD$ = INKEY$
1120 IF CMD$ = " " THEN GOTO 1150
1130 IF CMD$ =CHR$(27) THEN GOTO 1210
1140 GOTO 1110
1150 CLS:DIM AMORT[501,3]
1154 rem
1155 rem
1156 COLS=8
1158 rem
1160 GOSUB 1240
1170 IF ASC(I$)=27 THEN goto 1210
1180 IF MID$(I$,1,1)="2" THEN GOTO 2010
1190 IF MID$(I$,1,1)="1" THEN GOTO 1490
1200 GOTO 1160
1210 rem
1215 rem
1220 GOSUB 1470
1230 END
1240 REM
1250 CLS:PRINT " MORTGAGE ANALYSIS "
1260 LOCATE 3,1:PRINT "OPTIONS - "
1270 PRINT "1 - MORTGAGE PAYMENT COMPARISONS "
1280 PRINT "2 - MORTGAGE AMORTIZATION"
1290 PRINT "ESC KEY - EXIT"
1300 PRINT " "
1310 PRINT "OPTION NUMBER (1,2, OR ESC) =====>"
1330 PRINT " "
1340 rem
1350 PRINT CHR$(218)+STRING$(37,CHR$(196))+CHR$(191)
1360 PRINT CHR$(179)+" MORTGAGE PAYMENT COMPARISONS "+CHR$(179)
1370 PRINT CHR$(179)+" - USE THIS OPTION TO COMPARE "+CHR$(179)
1380 PRINT CHR$(179)+" THE MONTHLY PAYMENTS OF "+CHR$(179)
1390 PRINT CHR$(179)+" MORTGAGES AT VARIOUS RATES "+CHR$(179)
1400 PRINT CHR$(179)+" AND PRINCIPAL AMOUNTS. "+CHR$(179)
1410 PRINT CHR$(179)+" MORTGAGE AMORTIZATION "+CHR$(179)
1420 PRINT CHR$(179)+" - USE THIS OPTION TO CALCULATE "+CHR$(179)
1430 PRINT CHR$(179)+" THE PRINCIPAL AND INTEREST "+CHR$(179)
1440 PRINT CHR$(179)+" PAID OVER ANY 12 MONTH PERIOD. "+CHR$(179)
1450 PRINT CHR$(192)+STRING$(37,CHR$(196))+CHR$(217)
1460 LOCATE 8,37:PRINT " ":LOCATE 8,37
1461 I$=INKEY$:IF I$="" THEN goto 1461
1462 PRINT I$;:RETURN
1470 CLS:END
1480 PF = AF*(RF/(1-(1/((1+RF)^NF)))):return
1490 REM
1500 CLS:PRINT " MORTGAGE PAYMENT COMPARISON PROGRAM "
1510 LOCATE 10,1
1520 PRINT CHR$(218)+STRING$(37,CHR$(196))+CHR$(191)
1530 PRINT CHR$(179)+" MORTGAGE PAYMENT COMPARISONS "+CHR$(179)
1540 PRINT CHR$(179)+" - USE THIS OPTION TO COMPARE "+CHR$(179)
1550 PRINT CHR$(179)+" THE MONTHLY PAYMENTS OF "+CHR$(179)
1560 PRINT CHR$(179)+" MORTGAGES AT VARIOUS RATES "+CHR$(179)
1570 PRINT CHR$(179)+" AND PRINCIPAL AMOUNTS. "+CHR$(179)
1580 PRINT CHR$(179)+" "+CHR$(179)
1590 PRINT CHR$(179)+" NOTE: TO SELECT A VALUE OR AMOUNT "+CHR$(179)
1600 PRINT CHR$(179)+" ENTER THE APPROPRIATE VALUE "+CHR$(179)
1610 PRINT CHR$(179)+" AND PRESS THE ENTER KEY. "+CHR$(179)
1620 PRINT CHR$(192)+STRING$(37,CHR$(196))+CHR$(217)
1625 LOCATE 3,1:PRINT SPC(39);:PRINT "(1 TO 1000000 DOLLARS)";
1630 LOCATE 3,1:INPUT "ENTER BASE MORTGAGE AMOUNT ===> ",A$
1640 A = VAL(A$):IF (A < 1 OR A > 100000) THEN goto 1625
1650 AINC = 2000
1660 LOCATE 4,1:PRINT SPC(38);
1670 LOCATE 5,1:PRINT "(1 TO 35 PERCENT)";
1680 LOCATE 4,1:INPUT "ENTER BASE INTEREST RATE =====> ",IR$
1690 RR = VAL(IR$):IF RR>35 OR RR<1 THEN GOTO 1660
1700 R = RR/1200:RINC = .0025/12
1710 LOCATE 5,1:PRINT SPC(38);
1720 LOCATE 6,1:PRINT "(1 TO 35 YEARS)";
1730 LOCATE 5,1:INPUT "ENTER NUMBER OF YEARS IN MTG => ",Y$
1740 Y = VAL(Y$)
1750 N = Y * 12
1760 NF = N
1770 IF NF>420 OR NF<1 THEN GOTO 1710
1780 CLS
1790 PRINT " MONTHLY MORTGAGE PAYMENT COMPARISONS "
1800 LOCATE 3,10:PRINT Y$+"-YEAR MORTGAGE LOAN AMOUNTS";
1810 LOCATE 5,2:PRINT "RATES";
1820 FOR I = 0 TO COLS
1830 LOCATE 4,9+I*8:PRINT SPC(7):LOCATE 4,9+I*8:PRINT A+I*AINC
1840 NEXT I
1850 FOR I = 0 TO 14
1860 LOCATE 6+I,1:PRINT SPC(7):LOCATE 6+I,2
1870 PRINT INT(((R+(I*RINC))*120000)+.5)/100
1880 NEXT I
1890 rem
1900 FOR I = 0 TO 14
1910 RF = R+I*RINC:AF=1:GOSUB 1480
1920 FOR J = 0 TO COLS
1930 P = PF*(A+J*AINC):P = ((P+0.005)*100)/100
1935 IF P>10000 THEN LOCATE 22,1:PRINT "PAYMENTS TOO LARGE TO DISPLAY":GOTO 1980
1940 LOCATE 6+I,9+J*8:PRINT P;
1950 NEXT J
1960 NEXT I
1970 PRINT " "
1980 PRINT "PRESS SPACE BAR TO CONTINUE:";
1990 IF INKEY$ <> " " THEN GOTO 1990
2000 GOTO 1160
2010 REM
2020 rem
2030 CLS
2040 rem
2050 LOCATE 1,1
2060 PRINT " MORTGAGE AMORTIZATION PROGRAM "
2070 LOCATE 10,1
2080 PRINT CHR$(218)+STRING$(37,CHR$(196))+CHR$(191)
2090 PRINT CHR$(179)+" MORTGAGE AMORTIZATION "+CHR$(179)
2100 PRINT CHR$(179)+" - USE THIS OPTION TO CALCULATE "+CHR$(179)
2110 PRINT CHR$(179)+" THE PRINCIPAL AND INTEREST "+CHR$(179)
2120 PRINT CHR$(179)+" PAID OVER ANY 12 MONTH PERIOD. "+CHR$(179)
2130 PRINT CHR$(179)+" "+CHR$(179)
2140 PRINT CHR$(179)+" NOTE: TO SELECT A VALUE OR AMOUNT "+CHR$(179)
2150 PRINT CHR$(179)+" ENTER THE APPROPRIATE VALUE "+CHR$(179)
2160 PRINT CHR$(179)+" AND PRESS THE ENTER KEY. "+CHR$(179)
2170 PRINT CHR$(192)+STRING$(37,CHR$(196))+CHR$(217)
2175 LOCATE 3,1: PRINT SPC(39):PRINT "(1 TO 10000000 DOLLARS)";
2180 LOCATE 3,1
2190 INPUT "ENTER MORTGAGE AMOUNT ===> ",A$
2200 AF = VAL(A$): IF (AF < 1 OR AF > 100000) THEN goto 2175
2210 LOCATE 4,1
2220 PRINT " ";
2230 LOCATE 5,1
2240 PRINT "(1 TO 35 PERCENT)";
2250 LOCATE 4,1
2260 INPUT "ENTER INTEREST RATE =====> ",IR$
2270 RR = VAL(IR$)
2280 IF RR>35 THEN GOTO 2210
2290 IF RR<1 THEN GOTO 2210
2300 RF = RR/1200
2310 LOCATE 5,1
2320 PRINT " ";
2330 LOCATE 6,1
2340 PRINT "(1 TO 35 YEARS)";
2350 LOCATE 5,1
2360 INPUT "ENTER NUMBER OF YEARS ===> ",Y$
2370 Y = VAL(Y$)
2380 NF = Y * 12
2390 IF NF>420 THEN GOTO 2310
2400 IF NF<1 THEN GOTO 2310
2410 GOSUB 1480
2420 PF = ((PF+0.005)*100)/100: PF1 =INT((PF+0.005)*100)/100:
2430 PRINT "MONTHLY PAYMENTS ARE ====> ";PF1
2435 rem
2440 PRINT "CALCULATING AMORTIZATION"
2445 rem
2450 IF NF>36 THEN GOTO 2470
2460 FOR I = 1 TO 1000:NEXT I
2470 AMORT[0,1] = AF
2480 FOR I = 1 TO NF
2490 AMORT[I,2] = ((AMORT[I-1,1]*RF+0.005)*100)/100
2500 AMORT[I,1] = AMORT[I-1,1]-PF+AMORT[I,2]
2510 NEXT I
2520 FOR I = 7 TO 25:LOCATE I,1:PRINT SPC(79);:NEXT I
2530 LOCATE 9,1
2540 PRINT " - 1 TO "+STR$(NF)
2550 PRINT " - 0 TO END AMORTIZATION";
2560 LOCATE 7,1
2570 PRINT "ENTER BEGINNING PAYMENT NUMBER"
2580 INPUT "OF 12 MONTH PERIOD ======> ",PERIOD$
2590 PD= VAL(PERIOD$)
2600 IF PD <> 0 THEN GOTO 2620
2610 IF PERIOD$ <> "0" THEN GOTO 2560
2620 IF PD=0 THEN GOTO 1160
2630 IF PD>NF THEN GOTO 2560
2640 IF PD<0 THEN GOTO 2560
2650 LOCATE 7,1
2660 PRINT SPC(39)
2670 PRINT SPC(39)
2680 LOCATE 9,1
2690 PRINT "PYMNT";chr$(9);"PRINL";chr$(9);chr$(9);"INTEREST";chr$(9);"BALANCE"
2700 TINT = 0
2710 FOR I = PD TO PD+11
2711 IF I> NF THEN GOTO 2750
2720 TINT = TINT + AMORT[I,2]
2730 PRINT I;chr$(9);
2740 PRINT ABS(PF1-AMORT[I,2]);chr$(9);chr$(9);AMORT[I,2];chr$(9);chr$(9);AMORT[I,1]
2750 NEXT I
2760 PRINT " "
2770 PRINT "INTEREST FOR 12 PERIODS =";
2780 PRINT " ";TINT
2790 LOCATE 25,1
2800 PRINT "PRESS SPACE BAR TO CONTINUE:";
2810 rem
2820 IF INKEY$ <> "" THEN GOTO 2820
2830 CMD$ = INKEY$
2840 IF CMD$ = " " THEN GOTO 2520
2850 IF CMD$ =CHR$(27) THEN GOTO 1210
2860 GOTO 2830